def longestCommonPrefix(self, strs:list[str]):
    res = ''
    """ zip() 的使用方法
    >>> a = [1,2,3]
    >>> b = [4,5,6]
    >>> c = [4,5,6,7,8]
    >>> zipped = zip(a,b)     # 打包为元组的列表
    [(1, 4), (2, 5), (3, 6)]
    >>> zip(a,c)              # 元素个数与最短的列表一致
    [(1, 4), (2, 5), (3, 6)]
    >>> zip(*zipped)          # 与 zip 相反，*zipped 可理解为解压，返回二维矩阵式
    [(1, 2, 3), (4, 5, 6)]
    """
    for i in zip(*strs):
        """ set() 的使用方法
        >>>x = set('runoob')
        >>> y = set('google')
        >>> x, y
        (set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l']))   # 重复的被删除
        >>> x & y         # 交集
        set(['o'])
        >>> x | y         # 并集
        set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'])
        >>> x - y         # 差集
        set(['r', 'b', 'u', 'n'])
        """
        if len(set(i)) == 1:  # set() 创建一个无序不重复的元素集，所以长度等于1就表示字符串的第一个字母相同
            res += i[0]
        else:
            break
    return res